<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta http-equiv="X-UA-Compatible" content="IE=edge" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>Document</title>
  </head>
  <body>
    <script>
      //1. forEach
      // 调用:.forEach(item,i,arr)
      //  1.会根据数组中有多少数据，循环多少次，每次循环 执行{}中代码一次 2.每一次循环 item 分别是数组中的一项数据，index是该项的索引，arr是原始数组，不改变原始数组
      var arr = [
        { name: "张三", age: 15 },
        { name: "wqx", age: 20 },
        { name: "qza", age: 23 },
      ];
      var res1 = arr.forEach(function (item) {
        console.log(item);
      });
      //map必须有返回值,返回值是一个新数组，返回值和原数组返回值一样
      //调用:.map(item,i,arr)
      //1.会根据数组中有多少数据，循环多少次，每次循环 执行{}中代码一次 2.每一次循环,item,分别是数组中的一项数据，index是该项的索引，arr是原始数组，不改变原始数组
      //  运行原理 1.准备一个新数组 2.遍历原来的数组，执行函数（功能自己写） 3.把每一次的函数执行之后的返回值存入新数组 ，没有返回值时就是undefined 4.新数组是map的返回值(如果没有返回值 map是一个长度是arr.length的数组 每一个值都是undefineds)
      var res2 = arr.map(function (item) {
        console.log(item);
        // return item;
      });
      console.log(res2);
      var res3 = arr.filter(function (item) {
        return item.age >= 20;
      });
      console.log(res3);
    </script>
  </body>
</html>
